package org.colswe.testingProject.entity;

import java.io.Serializable;
import javax.persistence.*;

/**
 * Esta clase entidad es usada para almacenar la información correspondiente a
 * los tipos de solicitudes.
 *
 * @author Leonardo Bohórquez
 */
@Entity
public class ApplicationType implements Serializable {

    /**
     * Constante 48.
     */
    private static final int CUATRO8 = 48;
    /**
     * Constante false.
     */
    private static final boolean FALSE = false;
    /**
     * Constante true.
     */
    private static final boolean TRUE = true;
    /**
     * Id del tipo de solicitud.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    /**
     * Nombre del tipo de solicitud.
     */
    @Column(length = CUATRO8, unique = TRUE, nullable = FALSE)
    private String name;

    /**
     * Constructor por defecto de la clase ApplicationType.
     */
    public ApplicationType() {
    }

    /**
     * Costructor que recibe los parámetros para inicializar la clase
     * ApplicationType.
     *
     * @param name Nombre del tipo de solicitud
     */
    public ApplicationType(String name) {
        this.name = name;
    }

    /**
     * Función para conseguir el Id del tipo de solicitud.
     *
     * @return Id del tipo de solicitud
     */
    public Long getId() {
        return id;
    }

    /**
     * Método para establecer el Id del tipo de solicitud.
     *
     * @param id Id del tipo de solicitud
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Función para obtener el nombre del tipo de solicitud.
     *
     * @return Nombre del tipo de solicitud
     */
    public String getName() {
        return name;
    }

    /**
     * Método para establecer el nombre del tipo de solicitud.
     *
     * @param name Nombre del tipo de solicitud
     */
    public void setName(String name) {
        this.name = name;
    }
}
